在一个长为 字符串中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).(从0开始计数)
数据范围:,且字符串只有字母组成。
要求:空间复杂度 ,时间复杂度
function FirstNotRepeatingChar(str) { // write code here let wordFreq = new Map(); // for循环遍历 map存储词频 for (let i = 0; i < str.length; i++) { if (!wordFreq.get(str[i])) { wordFreq.set(str[i], 1); } else { wordFreq.set(str[i], wordFreq.get(str[i]) + 1); } } // for循环从前往后遍历 找到词频为1的直接返回(首个) for (let i = 0; i < str.length; i++) { if (wordFreq.get(str[i]) === 1) return i; } return -1; } module.exports = { FirstNotRepeatingChar: FirstNotRepeatingChar, };
function FirstNotRepeatingChar(str) { // write code here let dict = {}; for (let i = 0; i < str.length; i++){ dict[str[i]] = dict[str[i]] === undefined ? 1 : dict[str[i]] + 1; } for (let i = 0; i < str.length; i++){ if (dict[str[i]] === 1) return i; } return -1; }